\hypertarget{classsc2_1_1_observation_interface}{}\section{sc2\+:\+:Observation\+Interface Class Reference}
\label{classsc2_1_1_observation_interface}\index{sc2\+::\+Observation\+Interface@{sc2\+::\+Observation\+Interface}}


The \hyperlink{classsc2_1_1_observation_interface}{Observation\+Interface} reflects the current state of the game. Guaranteed to be valid when On\+Game\+Start or On\+Step is called.  




{\ttfamily \#include $<$sc2\+\_\+interfaces.\+h$>$}

\subsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
virtual uint32\+\_\+t \hyperlink{classsc2_1_1_observation_interface_a21c3f197fe6578e63ef6b2eaa2be082c}{Get\+Player\+ID} () const =0
\item 
virtual uint32\+\_\+t \hyperlink{classsc2_1_1_observation_interface_a19d85546124654418d00b736f0146218}{Get\+Game\+Loop} () const =0
\item 
virtual Units \hyperlink{classsc2_1_1_observation_interface_adf2e86998034eed0c91b558848b68f44}{Get\+Units} () const =0
\item 
virtual Units \hyperlink{classsc2_1_1_observation_interface_aa43cfa17a9ac893500bce33eb41e6171}{Get\+Units} (\hyperlink{classsc2_1_1_unit_a5a40e672e7599d73ef8ef5758bbd7461}{Unit\+::\+Alliance} alliance, \hyperlink{sc2__interfaces_8h_a5cc3d9751182ccd2b085f3e272bcc88b}{Filter} filter=\{\}) const =0
\item 
virtual Units \hyperlink{classsc2_1_1_observation_interface_ab0d22edc6bd276b8e9d27387294fdc88}{Get\+Units} (\hyperlink{sc2__interfaces_8h_a5cc3d9751182ccd2b085f3e272bcc88b}{Filter} filter) const =0
\item 
virtual const \hyperlink{classsc2_1_1_unit}{Unit} $\ast$ \hyperlink{classsc2_1_1_observation_interface_a0f766e5a6522a6966b4d2abf0a2daff2}{Get\+Unit} (Tag tag) const =0
\item 
virtual const Raw\+Actions \& \hyperlink{classsc2_1_1_observation_interface_aa247d650d50d3d1bfe81642df96b1360}{Get\+Raw\+Actions} () const =0
\item 
virtual const \hyperlink{structsc2_1_1_spatial_actions}{Spatial\+Actions} \& \hyperlink{classsc2_1_1_observation_interface_a1e0b5b6e6e6ce0a879c1854b696dcdb0}{Get\+Feature\+Layer\+Actions} () const =0
\item 
virtual const std\+::vector$<$ \hyperlink{structsc2_1_1_power_source}{Power\+Source} $>$ \& \hyperlink{classsc2_1_1_observation_interface_abf25ada67444ace346e57c1ad367ca8e}{Get\+Power\+Sources} () const =0
\item 
virtual const std\+::vector$<$ \hyperlink{structsc2_1_1_effect}{Effect} $>$ \& \hyperlink{classsc2_1_1_observation_interface_a1c558b2b552f4132938afedc309f7295}{Get\+Effects} () const =0
\item 
virtual const std\+::vector$<$ \hyperlink{classsc2_1_1_s_c2_type}{Upgrade\+ID} $>$ \& \hyperlink{classsc2_1_1_observation_interface_a0a794661f0072921a75d4c5851cfb9e9}{Get\+Upgrades} () const =0
\item 
virtual const \hyperlink{structsc2_1_1_score}{Score} \& \hyperlink{classsc2_1_1_observation_interface_a3ced6a72078288c373ad04c72eb1fba7}{Get\+Score} () const =0
\item 
virtual const Abilities \& \hyperlink{classsc2_1_1_observation_interface_a99e1d892c350e4ae10c615bf3185eb85}{Get\+Ability\+Data} (bool force\+\_\+refresh=false) const =0
\item 
virtual const Unit\+Types \& \hyperlink{classsc2_1_1_observation_interface_ae80acee23f67a2b5f67fa511dd158aca}{Get\+Unit\+Type\+Data} (bool force\+\_\+refresh=false) const =0
\item 
virtual const Upgrades \& \hyperlink{classsc2_1_1_observation_interface_a10b0d3b3131951ad656cb091aaa2040d}{Get\+Upgrade\+Data} (bool force\+\_\+refresh=false) const =0
\item 
virtual const Buffs \& \hyperlink{classsc2_1_1_observation_interface_a1b891d52ce1fe82dac0288797ad3720a}{Get\+Buff\+Data} (bool force\+\_\+refresh=false) const =0
\item 
virtual const Effects \& \hyperlink{classsc2_1_1_observation_interface_a2b3bae3c5a9e88f1164a11eba12c037f}{Get\+Effect\+Data} (bool force\+\_\+refresh=false) const =0
\item 
virtual const \hyperlink{structsc2_1_1_game_info}{Game\+Info} \& \hyperlink{classsc2_1_1_observation_interface_a7b73eb640b052409b0095609a8136102}{Get\+Game\+Info} () const =0
\item 
virtual int32\+\_\+t \hyperlink{classsc2_1_1_observation_interface_a107f76b56a961407bb772d91dfbbb040}{Get\+Minerals} () const =0
\item 
virtual int32\+\_\+t \hyperlink{classsc2_1_1_observation_interface_aa31de2f1b14a2306a282fef7314fbf37}{Get\+Vespene} () const =0
\item 
virtual int32\+\_\+t \hyperlink{classsc2_1_1_observation_interface_ac556f665e6920eb853711c1b7d4d54b3}{Get\+Food\+Cap} () const =0
\item 
virtual int32\+\_\+t \hyperlink{classsc2_1_1_observation_interface_a77f230bd98b95599338c7788aee00d26}{Get\+Food\+Used} () const =0
\item 
virtual int32\+\_\+t \hyperlink{classsc2_1_1_observation_interface_a7fd13a2a776f08f714d941ba9e4bafa8}{Get\+Food\+Army} () const =0
\item 
virtual int32\+\_\+t \hyperlink{classsc2_1_1_observation_interface_a19f0bdd8df647ee935dbe6f3c50d64e7}{Get\+Food\+Workers} () const =0
\item 
virtual int32\+\_\+t \hyperlink{classsc2_1_1_observation_interface_aa02a57eddba0fca44df116439979f8b7}{Get\+Idle\+Worker\+Count} () const =0
\item 
virtual int32\+\_\+t \hyperlink{classsc2_1_1_observation_interface_a1ab99209855a20aae751684e1af19aaa}{Get\+Army\+Count} () const =0
\item 
virtual int32\+\_\+t \hyperlink{classsc2_1_1_observation_interface_ade7028b262089975621a18c54d4cddb3}{Get\+Warp\+Gate\+Count} () const =0
\item 
virtual \hyperlink{structsc2_1_1_point2_d}{Point2D} \hyperlink{classsc2_1_1_observation_interface_ae0415e17a101e959a412e97f5db39358}{Get\+Camera\+Pos} () const =0
\item 
virtual \hyperlink{structsc2_1_1_point3_d}{Point3D} \hyperlink{classsc2_1_1_observation_interface_a67b41bf8b933702e2d83db5f7f2095f3}{Get\+Start\+Location} () const =0
\item 
virtual bool \hyperlink{classsc2_1_1_observation_interface_a155ebc1b654779ca8bd489d13d91d57c}{Has\+Creep} (const \hyperlink{structsc2_1_1_point2_d}{Point2D} \&point) const =0
\item 
virtual Visibility \hyperlink{classsc2_1_1_observation_interface_ab17337d7e05f1e9cf80252da10f01b04}{Get\+Visibility} (const \hyperlink{structsc2_1_1_point2_d}{Point2D} \&point) const =0
\item 
virtual bool \hyperlink{classsc2_1_1_observation_interface_a09ba9ccd3b9c32a6e57d80da3e739a49}{Is\+Pathable} (const \hyperlink{structsc2_1_1_point2_d}{Point2D} \&point) const =0
\begin{DoxyCompactList}\small\item\em Returns \textquotesingle{}true\textquotesingle{} if the given point on the terrain is pathable. This does not. \end{DoxyCompactList}\item 
virtual bool \hyperlink{classsc2_1_1_observation_interface_aceb3be53ab7a68e268169e6f786e61f6}{Is\+Placable} (const \hyperlink{structsc2_1_1_point2_d}{Point2D} \&point) const =0
\begin{DoxyCompactList}\small\item\em Returns \textquotesingle{}true\textquotesingle{} if the given point on the terrain is buildable. This does not. \end{DoxyCompactList}\item 
virtual float \hyperlink{classsc2_1_1_observation_interface_a8e6d0c2bce48f675b3d4b99f925dfafb}{Terrain\+Height} (const \hyperlink{structsc2_1_1_point2_d}{Point2D} \&point) const =0
\item 
virtual const S\+C2\+A\+P\+I\+Protocol\+::\+Observation $\ast$ \hyperlink{classsc2_1_1_observation_interface_a375edbd0639c948d8c83bdcd4ebd4932}{Get\+Raw\+Observation} () const =0
\begin{DoxyCompactList}\small\item\em A pointer to the low-\/level protocol data for the current observation. While it\textquotesingle{}s possible to extract most in-\/game data from this pointer. \end{DoxyCompactList}\end{DoxyCompactItemize}


\subsection{Detailed Description}
The \hyperlink{classsc2_1_1_observation_interface}{Observation\+Interface} reflects the current state of the game. Guaranteed to be valid when On\+Game\+Start or On\+Step is called. 

\subsection{Member Function Documentation}
\mbox{\Hypertarget{classsc2_1_1_observation_interface_a99e1d892c350e4ae10c615bf3185eb85}\label{classsc2_1_1_observation_interface_a99e1d892c350e4ae10c615bf3185eb85}} 
\index{sc2\+::\+Observation\+Interface@{sc2\+::\+Observation\+Interface}!Get\+Ability\+Data@{Get\+Ability\+Data}}
\index{Get\+Ability\+Data@{Get\+Ability\+Data}!sc2\+::\+Observation\+Interface@{sc2\+::\+Observation\+Interface}}
\subsubsection{\texorpdfstring{Get\+Ability\+Data()}{GetAbilityData()}}
{\footnotesize\ttfamily virtual const Abilities\& sc2\+::\+Observation\+Interface\+::\+Get\+Ability\+Data (\begin{DoxyParamCaption}\item[{bool}]{force\+\_\+refresh = {\ttfamily false} }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [pure virtual]}}

Gets metadata of abilities. Array can be indexed directly by Ability\+ID. 
\begin{DoxyParams}{Parameters}
{\em force\+\_\+refresh} & forces a full query from the game, may otherwise cache data from a previous call. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
Data about all abilities possible for the current game session. 
\end{DoxyReturn}
\mbox{\Hypertarget{classsc2_1_1_observation_interface_a1ab99209855a20aae751684e1af19aaa}\label{classsc2_1_1_observation_interface_a1ab99209855a20aae751684e1af19aaa}} 
\index{sc2\+::\+Observation\+Interface@{sc2\+::\+Observation\+Interface}!Get\+Army\+Count@{Get\+Army\+Count}}
\index{Get\+Army\+Count@{Get\+Army\+Count}!sc2\+::\+Observation\+Interface@{sc2\+::\+Observation\+Interface}}
\subsubsection{\texorpdfstring{Get\+Army\+Count()}{GetArmyCount()}}
{\footnotesize\ttfamily virtual int32\+\_\+t sc2\+::\+Observation\+Interface\+::\+Get\+Army\+Count (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [pure virtual]}}

The number of army units. \begin{DoxyReturn}{Returns}
Count of army units. 
\end{DoxyReturn}
\mbox{\Hypertarget{classsc2_1_1_observation_interface_a1b891d52ce1fe82dac0288797ad3720a}\label{classsc2_1_1_observation_interface_a1b891d52ce1fe82dac0288797ad3720a}} 
\index{sc2\+::\+Observation\+Interface@{sc2\+::\+Observation\+Interface}!Get\+Buff\+Data@{Get\+Buff\+Data}}
\index{Get\+Buff\+Data@{Get\+Buff\+Data}!sc2\+::\+Observation\+Interface@{sc2\+::\+Observation\+Interface}}
\subsubsection{\texorpdfstring{Get\+Buff\+Data()}{GetBuffData()}}
{\footnotesize\ttfamily virtual const Buffs\& sc2\+::\+Observation\+Interface\+::\+Get\+Buff\+Data (\begin{DoxyParamCaption}\item[{bool}]{force\+\_\+refresh = {\ttfamily false} }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [pure virtual]}}

Gets metadata of buffs. Array can be indexed directly by Buff\+ID. 
\begin{DoxyParams}{Parameters}
{\em force\+\_\+refresh} & forces a full query from the game, may otherwise cache data from a previous call. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
Data about all buffs possible for the current game session. 
\end{DoxyReturn}
\mbox{\Hypertarget{classsc2_1_1_observation_interface_ae0415e17a101e959a412e97f5db39358}\label{classsc2_1_1_observation_interface_ae0415e17a101e959a412e97f5db39358}} 
\index{sc2\+::\+Observation\+Interface@{sc2\+::\+Observation\+Interface}!Get\+Camera\+Pos@{Get\+Camera\+Pos}}
\index{Get\+Camera\+Pos@{Get\+Camera\+Pos}!sc2\+::\+Observation\+Interface@{sc2\+::\+Observation\+Interface}}
\subsubsection{\texorpdfstring{Get\+Camera\+Pos()}{GetCameraPos()}}
{\footnotesize\ttfamily virtual \hyperlink{structsc2_1_1_point2_d}{Point2D} sc2\+::\+Observation\+Interface\+::\+Get\+Camera\+Pos (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [pure virtual]}}

Position of the center of the camera. \begin{DoxyReturn}{Returns}
Camera position. 
\end{DoxyReturn}
\mbox{\Hypertarget{classsc2_1_1_observation_interface_a2b3bae3c5a9e88f1164a11eba12c037f}\label{classsc2_1_1_observation_interface_a2b3bae3c5a9e88f1164a11eba12c037f}} 
\index{sc2\+::\+Observation\+Interface@{sc2\+::\+Observation\+Interface}!Get\+Effect\+Data@{Get\+Effect\+Data}}
\index{Get\+Effect\+Data@{Get\+Effect\+Data}!sc2\+::\+Observation\+Interface@{sc2\+::\+Observation\+Interface}}
\subsubsection{\texorpdfstring{Get\+Effect\+Data()}{GetEffectData()}}
{\footnotesize\ttfamily virtual const Effects\& sc2\+::\+Observation\+Interface\+::\+Get\+Effect\+Data (\begin{DoxyParamCaption}\item[{bool}]{force\+\_\+refresh = {\ttfamily false} }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [pure virtual]}}

Gets metadata of effects. Array can be indexed directly by Effect\+ID. 
\begin{DoxyParams}{Parameters}
{\em force\+\_\+refresh} & forces a full query from the game, may otherwise cache data from a previous call. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
Data about all effects possible for the current game session. 
\end{DoxyReturn}
\mbox{\Hypertarget{classsc2_1_1_observation_interface_a1c558b2b552f4132938afedc309f7295}\label{classsc2_1_1_observation_interface_a1c558b2b552f4132938afedc309f7295}} 
\index{sc2\+::\+Observation\+Interface@{sc2\+::\+Observation\+Interface}!Get\+Effects@{Get\+Effects}}
\index{Get\+Effects@{Get\+Effects}!sc2\+::\+Observation\+Interface@{sc2\+::\+Observation\+Interface}}
\subsubsection{\texorpdfstring{Get\+Effects()}{GetEffects()}}
{\footnotesize\ttfamily virtual const std\+::vector$<$\hyperlink{structsc2_1_1_effect}{Effect}$>$\& sc2\+::\+Observation\+Interface\+::\+Get\+Effects (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [pure virtual]}}

Gets all active effects in vision of the current player. \begin{DoxyReturn}{Returns}
List of effects. 
\end{DoxyReturn}
\mbox{\Hypertarget{classsc2_1_1_observation_interface_a1e0b5b6e6e6ce0a879c1854b696dcdb0}\label{classsc2_1_1_observation_interface_a1e0b5b6e6e6ce0a879c1854b696dcdb0}} 
\index{sc2\+::\+Observation\+Interface@{sc2\+::\+Observation\+Interface}!Get\+Feature\+Layer\+Actions@{Get\+Feature\+Layer\+Actions}}
\index{Get\+Feature\+Layer\+Actions@{Get\+Feature\+Layer\+Actions}!sc2\+::\+Observation\+Interface@{sc2\+::\+Observation\+Interface}}
\subsubsection{\texorpdfstring{Get\+Feature\+Layer\+Actions()}{GetFeatureLayerActions()}}
{\footnotesize\ttfamily virtual const \hyperlink{structsc2_1_1_spatial_actions}{Spatial\+Actions}\& sc2\+::\+Observation\+Interface\+::\+Get\+Feature\+Layer\+Actions (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [pure virtual]}}

Gets a list of actions performed as abilities applied to the current selection. For use with the feature layer or rendered options. \begin{DoxyReturn}{Returns}
List of actions. 
\end{DoxyReturn}
\mbox{\Hypertarget{classsc2_1_1_observation_interface_a7fd13a2a776f08f714d941ba9e4bafa8}\label{classsc2_1_1_observation_interface_a7fd13a2a776f08f714d941ba9e4bafa8}} 
\index{sc2\+::\+Observation\+Interface@{sc2\+::\+Observation\+Interface}!Get\+Food\+Army@{Get\+Food\+Army}}
\index{Get\+Food\+Army@{Get\+Food\+Army}!sc2\+::\+Observation\+Interface@{sc2\+::\+Observation\+Interface}}
\subsubsection{\texorpdfstring{Get\+Food\+Army()}{GetFoodArmy()}}
{\footnotesize\ttfamily virtual int32\+\_\+t sc2\+::\+Observation\+Interface\+::\+Get\+Food\+Army (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [pure virtual]}}

The total supply consumed by army units alone. \begin{DoxySeeAlso}{See also}
\hyperlink{classsc2_1_1_observation_interface_a77f230bd98b95599338c7788aee00d26}{Get\+Food\+Used()} \hyperlink{classsc2_1_1_observation_interface_a19f0bdd8df647ee935dbe6f3c50d64e7}{Get\+Food\+Workers()} 
\end{DoxySeeAlso}
\begin{DoxyReturn}{Returns}
Food used by army units. 
\end{DoxyReturn}
\mbox{\Hypertarget{classsc2_1_1_observation_interface_ac556f665e6920eb853711c1b7d4d54b3}\label{classsc2_1_1_observation_interface_ac556f665e6920eb853711c1b7d4d54b3}} 
\index{sc2\+::\+Observation\+Interface@{sc2\+::\+Observation\+Interface}!Get\+Food\+Cap@{Get\+Food\+Cap}}
\index{Get\+Food\+Cap@{Get\+Food\+Cap}!sc2\+::\+Observation\+Interface@{sc2\+::\+Observation\+Interface}}
\subsubsection{\texorpdfstring{Get\+Food\+Cap()}{GetFoodCap()}}
{\footnotesize\ttfamily virtual int32\+\_\+t sc2\+::\+Observation\+Interface\+::\+Get\+Food\+Cap (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [pure virtual]}}

The total supply cap given the players max possible supply. \begin{DoxyReturn}{Returns}
Food cap. 
\end{DoxyReturn}
\begin{DoxySeeAlso}{See also}
\hyperlink{classsc2_1_1_observation_interface_a77f230bd98b95599338c7788aee00d26}{Get\+Food\+Used()} \hyperlink{classsc2_1_1_observation_interface_a7fd13a2a776f08f714d941ba9e4bafa8}{Get\+Food\+Army()} \hyperlink{classsc2_1_1_observation_interface_a19f0bdd8df647ee935dbe6f3c50d64e7}{Get\+Food\+Workers()} 
\end{DoxySeeAlso}
\mbox{\Hypertarget{classsc2_1_1_observation_interface_a77f230bd98b95599338c7788aee00d26}\label{classsc2_1_1_observation_interface_a77f230bd98b95599338c7788aee00d26}} 
\index{sc2\+::\+Observation\+Interface@{sc2\+::\+Observation\+Interface}!Get\+Food\+Used@{Get\+Food\+Used}}
\index{Get\+Food\+Used@{Get\+Food\+Used}!sc2\+::\+Observation\+Interface@{sc2\+::\+Observation\+Interface}}
\subsubsection{\texorpdfstring{Get\+Food\+Used()}{GetFoodUsed()}}
{\footnotesize\ttfamily virtual int32\+\_\+t sc2\+::\+Observation\+Interface\+::\+Get\+Food\+Used (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [pure virtual]}}

The total supply used by the player as defined\+: \hyperlink{classsc2_1_1_observation_interface_a7fd13a2a776f08f714d941ba9e4bafa8}{Get\+Food\+Army()} + \hyperlink{classsc2_1_1_observation_interface_a19f0bdd8df647ee935dbe6f3c50d64e7}{Get\+Food\+Workers()}. \begin{DoxyReturn}{Returns}
Food used. 
\end{DoxyReturn}
\begin{DoxySeeAlso}{See also}
\hyperlink{classsc2_1_1_observation_interface_a7fd13a2a776f08f714d941ba9e4bafa8}{Get\+Food\+Army()} \hyperlink{classsc2_1_1_observation_interface_a19f0bdd8df647ee935dbe6f3c50d64e7}{Get\+Food\+Workers()} 
\end{DoxySeeAlso}
\mbox{\Hypertarget{classsc2_1_1_observation_interface_a19f0bdd8df647ee935dbe6f3c50d64e7}\label{classsc2_1_1_observation_interface_a19f0bdd8df647ee935dbe6f3c50d64e7}} 
\index{sc2\+::\+Observation\+Interface@{sc2\+::\+Observation\+Interface}!Get\+Food\+Workers@{Get\+Food\+Workers}}
\index{Get\+Food\+Workers@{Get\+Food\+Workers}!sc2\+::\+Observation\+Interface@{sc2\+::\+Observation\+Interface}}
\subsubsection{\texorpdfstring{Get\+Food\+Workers()}{GetFoodWorkers()}}
{\footnotesize\ttfamily virtual int32\+\_\+t sc2\+::\+Observation\+Interface\+::\+Get\+Food\+Workers (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [pure virtual]}}

The total supply consumed by workers units alone. \begin{DoxySeeAlso}{See also}
\hyperlink{classsc2_1_1_observation_interface_a7fd13a2a776f08f714d941ba9e4bafa8}{Get\+Food\+Army()} \hyperlink{classsc2_1_1_observation_interface_a77f230bd98b95599338c7788aee00d26}{Get\+Food\+Used()} 
\end{DoxySeeAlso}
\begin{DoxyReturn}{Returns}
Food used by worker units. 
\end{DoxyReturn}
\mbox{\Hypertarget{classsc2_1_1_observation_interface_a7b73eb640b052409b0095609a8136102}\label{classsc2_1_1_observation_interface_a7b73eb640b052409b0095609a8136102}} 
\index{sc2\+::\+Observation\+Interface@{sc2\+::\+Observation\+Interface}!Get\+Game\+Info@{Get\+Game\+Info}}
\index{Get\+Game\+Info@{Get\+Game\+Info}!sc2\+::\+Observation\+Interface@{sc2\+::\+Observation\+Interface}}
\subsubsection{\texorpdfstring{Get\+Game\+Info()}{GetGameInfo()}}
{\footnotesize\ttfamily virtual const \hyperlink{structsc2_1_1_game_info}{Game\+Info}\& sc2\+::\+Observation\+Interface\+::\+Get\+Game\+Info (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [pure virtual]}}

Gets the \hyperlink{structsc2_1_1_game_info}{Game\+Info} struct for the current map. \begin{DoxyReturn}{Returns}
The current \hyperlink{structsc2_1_1_game_info}{Game\+Info} struct. 
\end{DoxyReturn}
\mbox{\Hypertarget{classsc2_1_1_observation_interface_a19d85546124654418d00b736f0146218}\label{classsc2_1_1_observation_interface_a19d85546124654418d00b736f0146218}} 
\index{sc2\+::\+Observation\+Interface@{sc2\+::\+Observation\+Interface}!Get\+Game\+Loop@{Get\+Game\+Loop}}
\index{Get\+Game\+Loop@{Get\+Game\+Loop}!sc2\+::\+Observation\+Interface@{sc2\+::\+Observation\+Interface}}
\subsubsection{\texorpdfstring{Get\+Game\+Loop()}{GetGameLoop()}}
{\footnotesize\ttfamily virtual uint32\+\_\+t sc2\+::\+Observation\+Interface\+::\+Get\+Game\+Loop (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [pure virtual]}}

Get the current game loop for this observation. \begin{DoxyReturn}{Returns}
The game loop. 
\end{DoxyReturn}
\mbox{\Hypertarget{classsc2_1_1_observation_interface_aa02a57eddba0fca44df116439979f8b7}\label{classsc2_1_1_observation_interface_aa02a57eddba0fca44df116439979f8b7}} 
\index{sc2\+::\+Observation\+Interface@{sc2\+::\+Observation\+Interface}!Get\+Idle\+Worker\+Count@{Get\+Idle\+Worker\+Count}}
\index{Get\+Idle\+Worker\+Count@{Get\+Idle\+Worker\+Count}!sc2\+::\+Observation\+Interface@{sc2\+::\+Observation\+Interface}}
\subsubsection{\texorpdfstring{Get\+Idle\+Worker\+Count()}{GetIdleWorkerCount()}}
{\footnotesize\ttfamily virtual int32\+\_\+t sc2\+::\+Observation\+Interface\+::\+Get\+Idle\+Worker\+Count (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [pure virtual]}}

The number of workers that currently have no orders. \begin{DoxyReturn}{Returns}
Count of idle workers. 
\end{DoxyReturn}
\mbox{\Hypertarget{classsc2_1_1_observation_interface_a107f76b56a961407bb772d91dfbbb040}\label{classsc2_1_1_observation_interface_a107f76b56a961407bb772d91dfbbb040}} 
\index{sc2\+::\+Observation\+Interface@{sc2\+::\+Observation\+Interface}!Get\+Minerals@{Get\+Minerals}}
\index{Get\+Minerals@{Get\+Minerals}!sc2\+::\+Observation\+Interface@{sc2\+::\+Observation\+Interface}}
\subsubsection{\texorpdfstring{Get\+Minerals()}{GetMinerals()}}
{\footnotesize\ttfamily virtual int32\+\_\+t sc2\+::\+Observation\+Interface\+::\+Get\+Minerals (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [pure virtual]}}

The mineral count of the player. \begin{DoxyReturn}{Returns}
The mineral count. 
\end{DoxyReturn}
\mbox{\Hypertarget{classsc2_1_1_observation_interface_a21c3f197fe6578e63ef6b2eaa2be082c}\label{classsc2_1_1_observation_interface_a21c3f197fe6578e63ef6b2eaa2be082c}} 
\index{sc2\+::\+Observation\+Interface@{sc2\+::\+Observation\+Interface}!Get\+Player\+ID@{Get\+Player\+ID}}
\index{Get\+Player\+ID@{Get\+Player\+ID}!sc2\+::\+Observation\+Interface@{sc2\+::\+Observation\+Interface}}
\subsubsection{\texorpdfstring{Get\+Player\+I\+D()}{GetPlayerID()}}
{\footnotesize\ttfamily virtual uint32\+\_\+t sc2\+::\+Observation\+Interface\+::\+Get\+Player\+ID (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [pure virtual]}}

Gets a unique ID that represents the player. \begin{DoxyReturn}{Returns}
The player ID. 
\end{DoxyReturn}
\mbox{\Hypertarget{classsc2_1_1_observation_interface_abf25ada67444ace346e57c1ad367ca8e}\label{classsc2_1_1_observation_interface_abf25ada67444ace346e57c1ad367ca8e}} 
\index{sc2\+::\+Observation\+Interface@{sc2\+::\+Observation\+Interface}!Get\+Power\+Sources@{Get\+Power\+Sources}}
\index{Get\+Power\+Sources@{Get\+Power\+Sources}!sc2\+::\+Observation\+Interface@{sc2\+::\+Observation\+Interface}}
\subsubsection{\texorpdfstring{Get\+Power\+Sources()}{GetPowerSources()}}
{\footnotesize\ttfamily virtual const std\+::vector$<$\hyperlink{structsc2_1_1_power_source}{Power\+Source}$>$\& sc2\+::\+Observation\+Interface\+::\+Get\+Power\+Sources (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [pure virtual]}}

Gets all power sources associated with the current player. \begin{DoxyReturn}{Returns}
List of power sources. 
\end{DoxyReturn}
\mbox{\Hypertarget{classsc2_1_1_observation_interface_aa247d650d50d3d1bfe81642df96b1360}\label{classsc2_1_1_observation_interface_aa247d650d50d3d1bfe81642df96b1360}} 
\index{sc2\+::\+Observation\+Interface@{sc2\+::\+Observation\+Interface}!Get\+Raw\+Actions@{Get\+Raw\+Actions}}
\index{Get\+Raw\+Actions@{Get\+Raw\+Actions}!sc2\+::\+Observation\+Interface@{sc2\+::\+Observation\+Interface}}
\subsubsection{\texorpdfstring{Get\+Raw\+Actions()}{GetRawActions()}}
{\footnotesize\ttfamily virtual const Raw\+Actions\& sc2\+::\+Observation\+Interface\+::\+Get\+Raw\+Actions (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [pure virtual]}}

Gets a list of actions performed as abilities applied to units. For use with the raw option. \begin{DoxyReturn}{Returns}
List of raw actions. 
\end{DoxyReturn}
\mbox{\Hypertarget{classsc2_1_1_observation_interface_a375edbd0639c948d8c83bdcd4ebd4932}\label{classsc2_1_1_observation_interface_a375edbd0639c948d8c83bdcd4ebd4932}} 
\index{sc2\+::\+Observation\+Interface@{sc2\+::\+Observation\+Interface}!Get\+Raw\+Observation@{Get\+Raw\+Observation}}
\index{Get\+Raw\+Observation@{Get\+Raw\+Observation}!sc2\+::\+Observation\+Interface@{sc2\+::\+Observation\+Interface}}
\subsubsection{\texorpdfstring{Get\+Raw\+Observation()}{GetRawObservation()}}
{\footnotesize\ttfamily virtual const S\+C2\+A\+P\+I\+Protocol\+::\+Observation$\ast$ sc2\+::\+Observation\+Interface\+::\+Get\+Raw\+Observation (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [pure virtual]}}



A pointer to the low-\/level protocol data for the current observation. While it\textquotesingle{}s possible to extract most in-\/game data from this pointer. 

$<$ \begin{DoxyReturn}{Returns}
A const pointer to the Observation. 
\end{DoxyReturn}
\begin{DoxySeeAlso}{See also}
Observation Get\+Observation() 
\end{DoxySeeAlso}
\mbox{\Hypertarget{classsc2_1_1_observation_interface_a3ced6a72078288c373ad04c72eb1fba7}\label{classsc2_1_1_observation_interface_a3ced6a72078288c373ad04c72eb1fba7}} 
\index{sc2\+::\+Observation\+Interface@{sc2\+::\+Observation\+Interface}!Get\+Score@{Get\+Score}}
\index{Get\+Score@{Get\+Score}!sc2\+::\+Observation\+Interface@{sc2\+::\+Observation\+Interface}}
\subsubsection{\texorpdfstring{Get\+Score()}{GetScore()}}
{\footnotesize\ttfamily virtual const \hyperlink{structsc2_1_1_score}{Score}\& sc2\+::\+Observation\+Interface\+::\+Get\+Score (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [pure virtual]}}

Gets the detailed current set of scores. \begin{DoxyReturn}{Returns}
The current score structure. 
\end{DoxyReturn}
\mbox{\Hypertarget{classsc2_1_1_observation_interface_a67b41bf8b933702e2d83db5f7f2095f3}\label{classsc2_1_1_observation_interface_a67b41bf8b933702e2d83db5f7f2095f3}} 
\index{sc2\+::\+Observation\+Interface@{sc2\+::\+Observation\+Interface}!Get\+Start\+Location@{Get\+Start\+Location}}
\index{Get\+Start\+Location@{Get\+Start\+Location}!sc2\+::\+Observation\+Interface@{sc2\+::\+Observation\+Interface}}
\subsubsection{\texorpdfstring{Get\+Start\+Location()}{GetStartLocation()}}
{\footnotesize\ttfamily virtual \hyperlink{structsc2_1_1_point3_d}{Point3D} sc2\+::\+Observation\+Interface\+::\+Get\+Start\+Location (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [pure virtual]}}

Gets the initial start location of the player. \begin{DoxyReturn}{Returns}
Player start position. 
\end{DoxyReturn}
\mbox{\Hypertarget{classsc2_1_1_observation_interface_a0f766e5a6522a6966b4d2abf0a2daff2}\label{classsc2_1_1_observation_interface_a0f766e5a6522a6966b4d2abf0a2daff2}} 
\index{sc2\+::\+Observation\+Interface@{sc2\+::\+Observation\+Interface}!Get\+Unit@{Get\+Unit}}
\index{Get\+Unit@{Get\+Unit}!sc2\+::\+Observation\+Interface@{sc2\+::\+Observation\+Interface}}
\subsubsection{\texorpdfstring{Get\+Unit()}{GetUnit()}}
{\footnotesize\ttfamily virtual const \hyperlink{classsc2_1_1_unit}{Unit}$\ast$ sc2\+::\+Observation\+Interface\+::\+Get\+Unit (\begin{DoxyParamCaption}\item[{Tag}]{tag }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [pure virtual]}}

Get the unit state as represented by the last call to Get\+Observation. 
\begin{DoxyParams}{Parameters}
{\em tag} & Unique tag of the unit. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
Pointer to the \hyperlink{classsc2_1_1_unit}{Unit} object. 
\end{DoxyReturn}
\mbox{\Hypertarget{classsc2_1_1_observation_interface_adf2e86998034eed0c91b558848b68f44}\label{classsc2_1_1_observation_interface_adf2e86998034eed0c91b558848b68f44}} 
\index{sc2\+::\+Observation\+Interface@{sc2\+::\+Observation\+Interface}!Get\+Units@{Get\+Units}}
\index{Get\+Units@{Get\+Units}!sc2\+::\+Observation\+Interface@{sc2\+::\+Observation\+Interface}}
\subsubsection{\texorpdfstring{Get\+Units()}{GetUnits()}\hspace{0.1cm}{\footnotesize\ttfamily [1/3]}}
{\footnotesize\ttfamily virtual Units sc2\+::\+Observation\+Interface\+::\+Get\+Units (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [pure virtual]}}

Get a list of all known units in the game. \begin{DoxyReturn}{Returns}
List of all ally and visible enemy and neutral units. 
\end{DoxyReturn}
\mbox{\Hypertarget{classsc2_1_1_observation_interface_aa43cfa17a9ac893500bce33eb41e6171}\label{classsc2_1_1_observation_interface_aa43cfa17a9ac893500bce33eb41e6171}} 
\index{sc2\+::\+Observation\+Interface@{sc2\+::\+Observation\+Interface}!Get\+Units@{Get\+Units}}
\index{Get\+Units@{Get\+Units}!sc2\+::\+Observation\+Interface@{sc2\+::\+Observation\+Interface}}
\subsubsection{\texorpdfstring{Get\+Units()}{GetUnits()}\hspace{0.1cm}{\footnotesize\ttfamily [2/3]}}
{\footnotesize\ttfamily virtual Units sc2\+::\+Observation\+Interface\+::\+Get\+Units (\begin{DoxyParamCaption}\item[{\hyperlink{classsc2_1_1_unit_a5a40e672e7599d73ef8ef5758bbd7461}{Unit\+::\+Alliance}}]{alliance,  }\item[{\hyperlink{sc2__interfaces_8h_a5cc3d9751182ccd2b085f3e272bcc88b}{Filter}}]{filter = {\ttfamily \{\}} }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [pure virtual]}}

Get all units belonging to a certain alliance and meet the conditions provided by the filter. The unit structure is const data only. Therefore editing that data will not change any in game state. See the \hyperlink{classsc2_1_1_action_interface}{Action\+Interface} for changing \hyperlink{classsc2_1_1_unit}{Unit} state. 
\begin{DoxyParams}{Parameters}
{\em alliance} & The faction the units belong to. \\
\hline
{\em filter} & A functor or lambda used to filter out any unneeded units in the list. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
A list of units that meet the conditions provided by alliance and filter. 
\end{DoxyReturn}
\mbox{\Hypertarget{classsc2_1_1_observation_interface_ab0d22edc6bd276b8e9d27387294fdc88}\label{classsc2_1_1_observation_interface_ab0d22edc6bd276b8e9d27387294fdc88}} 
\index{sc2\+::\+Observation\+Interface@{sc2\+::\+Observation\+Interface}!Get\+Units@{Get\+Units}}
\index{Get\+Units@{Get\+Units}!sc2\+::\+Observation\+Interface@{sc2\+::\+Observation\+Interface}}
\subsubsection{\texorpdfstring{Get\+Units()}{GetUnits()}\hspace{0.1cm}{\footnotesize\ttfamily [3/3]}}
{\footnotesize\ttfamily virtual Units sc2\+::\+Observation\+Interface\+::\+Get\+Units (\begin{DoxyParamCaption}\item[{\hyperlink{sc2__interfaces_8h_a5cc3d9751182ccd2b085f3e272bcc88b}{Filter}}]{filter }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [pure virtual]}}

Get all units belonging to self that meet the conditions provided by the filter. The unit structure is const data only. Therefore editing that data will not change any in game state. See the \hyperlink{classsc2_1_1_action_interface}{Action\+Interface} for changing \hyperlink{classsc2_1_1_unit}{Unit} state. 
\begin{DoxyParams}{Parameters}
{\em filter} & A functor or lambda used to filter out any unneeded units in the list. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
A list of units that meet the conditions provided by the filter. 
\end{DoxyReturn}
\mbox{\Hypertarget{classsc2_1_1_observation_interface_ae80acee23f67a2b5f67fa511dd158aca}\label{classsc2_1_1_observation_interface_ae80acee23f67a2b5f67fa511dd158aca}} 
\index{sc2\+::\+Observation\+Interface@{sc2\+::\+Observation\+Interface}!Get\+Unit\+Type\+Data@{Get\+Unit\+Type\+Data}}
\index{Get\+Unit\+Type\+Data@{Get\+Unit\+Type\+Data}!sc2\+::\+Observation\+Interface@{sc2\+::\+Observation\+Interface}}
\subsubsection{\texorpdfstring{Get\+Unit\+Type\+Data()}{GetUnitTypeData()}}
{\footnotesize\ttfamily virtual const Unit\+Types\& sc2\+::\+Observation\+Interface\+::\+Get\+Unit\+Type\+Data (\begin{DoxyParamCaption}\item[{bool}]{force\+\_\+refresh = {\ttfamily false} }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [pure virtual]}}

Gets metadata of units. Array can be indexed directly by Unit\+ID. 
\begin{DoxyParams}{Parameters}
{\em force\+\_\+refresh} & forces a full query from the game, may otherwise cache data from a previous call. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
Data about all units possible for the current game session. 
\end{DoxyReturn}
\mbox{\Hypertarget{classsc2_1_1_observation_interface_a10b0d3b3131951ad656cb091aaa2040d}\label{classsc2_1_1_observation_interface_a10b0d3b3131951ad656cb091aaa2040d}} 
\index{sc2\+::\+Observation\+Interface@{sc2\+::\+Observation\+Interface}!Get\+Upgrade\+Data@{Get\+Upgrade\+Data}}
\index{Get\+Upgrade\+Data@{Get\+Upgrade\+Data}!sc2\+::\+Observation\+Interface@{sc2\+::\+Observation\+Interface}}
\subsubsection{\texorpdfstring{Get\+Upgrade\+Data()}{GetUpgradeData()}}
{\footnotesize\ttfamily virtual const Upgrades\& sc2\+::\+Observation\+Interface\+::\+Get\+Upgrade\+Data (\begin{DoxyParamCaption}\item[{bool}]{force\+\_\+refresh = {\ttfamily false} }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [pure virtual]}}

Gets metadata of upgrades. Array can be indexed directly by Upgrade\+ID. 
\begin{DoxyParams}{Parameters}
{\em force\+\_\+refresh} & forces a full query from the game, may otherwise cache data from a previous call. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
Data about all upgrades possible for the current game session. 
\end{DoxyReturn}
\mbox{\Hypertarget{classsc2_1_1_observation_interface_a0a794661f0072921a75d4c5851cfb9e9}\label{classsc2_1_1_observation_interface_a0a794661f0072921a75d4c5851cfb9e9}} 
\index{sc2\+::\+Observation\+Interface@{sc2\+::\+Observation\+Interface}!Get\+Upgrades@{Get\+Upgrades}}
\index{Get\+Upgrades@{Get\+Upgrades}!sc2\+::\+Observation\+Interface@{sc2\+::\+Observation\+Interface}}
\subsubsection{\texorpdfstring{Get\+Upgrades()}{GetUpgrades()}}
{\footnotesize\ttfamily virtual const std\+::vector$<$\hyperlink{classsc2_1_1_s_c2_type}{Upgrade\+ID}$>$\& sc2\+::\+Observation\+Interface\+::\+Get\+Upgrades (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [pure virtual]}}

Gets all upgrades. \begin{DoxyReturn}{Returns}
List of upgrades. 
\end{DoxyReturn}
\mbox{\Hypertarget{classsc2_1_1_observation_interface_aa31de2f1b14a2306a282fef7314fbf37}\label{classsc2_1_1_observation_interface_aa31de2f1b14a2306a282fef7314fbf37}} 
\index{sc2\+::\+Observation\+Interface@{sc2\+::\+Observation\+Interface}!Get\+Vespene@{Get\+Vespene}}
\index{Get\+Vespene@{Get\+Vespene}!sc2\+::\+Observation\+Interface@{sc2\+::\+Observation\+Interface}}
\subsubsection{\texorpdfstring{Get\+Vespene()}{GetVespene()}}
{\footnotesize\ttfamily virtual int32\+\_\+t sc2\+::\+Observation\+Interface\+::\+Get\+Vespene (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [pure virtual]}}

The vespene count of the player. \begin{DoxyReturn}{Returns}
The vespene count. 
\end{DoxyReturn}
\mbox{\Hypertarget{classsc2_1_1_observation_interface_ab17337d7e05f1e9cf80252da10f01b04}\label{classsc2_1_1_observation_interface_ab17337d7e05f1e9cf80252da10f01b04}} 
\index{sc2\+::\+Observation\+Interface@{sc2\+::\+Observation\+Interface}!Get\+Visibility@{Get\+Visibility}}
\index{Get\+Visibility@{Get\+Visibility}!sc2\+::\+Observation\+Interface@{sc2\+::\+Observation\+Interface}}
\subsubsection{\texorpdfstring{Get\+Visibility()}{GetVisibility()}}
{\footnotesize\ttfamily virtual Visibility sc2\+::\+Observation\+Interface\+::\+Get\+Visibility (\begin{DoxyParamCaption}\item[{const \hyperlink{structsc2_1_1_point2_d}{Point2D} \&}]{point }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [pure virtual]}}

Returns visibility value of the given point for the current player. 
\begin{DoxyParams}{Parameters}
{\em point} & Position to sample. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
Visibility. 
\end{DoxyReturn}
\mbox{\Hypertarget{classsc2_1_1_observation_interface_ade7028b262089975621a18c54d4cddb3}\label{classsc2_1_1_observation_interface_ade7028b262089975621a18c54d4cddb3}} 
\index{sc2\+::\+Observation\+Interface@{sc2\+::\+Observation\+Interface}!Get\+Warp\+Gate\+Count@{Get\+Warp\+Gate\+Count}}
\index{Get\+Warp\+Gate\+Count@{Get\+Warp\+Gate\+Count}!sc2\+::\+Observation\+Interface@{sc2\+::\+Observation\+Interface}}
\subsubsection{\texorpdfstring{Get\+Warp\+Gate\+Count()}{GetWarpGateCount()}}
{\footnotesize\ttfamily virtual int32\+\_\+t sc2\+::\+Observation\+Interface\+::\+Get\+Warp\+Gate\+Count (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [pure virtual]}}

Number of warp gates owned by the player. This value should only be nonzero for Protoss. \begin{DoxyReturn}{Returns}
Count of warp gates. 
\end{DoxyReturn}
\mbox{\Hypertarget{classsc2_1_1_observation_interface_a155ebc1b654779ca8bd489d13d91d57c}\label{classsc2_1_1_observation_interface_a155ebc1b654779ca8bd489d13d91d57c}} 
\index{sc2\+::\+Observation\+Interface@{sc2\+::\+Observation\+Interface}!Has\+Creep@{Has\+Creep}}
\index{Has\+Creep@{Has\+Creep}!sc2\+::\+Observation\+Interface@{sc2\+::\+Observation\+Interface}}
\subsubsection{\texorpdfstring{Has\+Creep()}{HasCreep()}}
{\footnotesize\ttfamily virtual bool sc2\+::\+Observation\+Interface\+::\+Has\+Creep (\begin{DoxyParamCaption}\item[{const \hyperlink{structsc2_1_1_point2_d}{Point2D} \&}]{point }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [pure virtual]}}

Returns \textquotesingle{}true\textquotesingle{} if the given point has creep. 
\begin{DoxyParams}{Parameters}
{\em point} & Position to sample. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
Creep. 
\end{DoxyReturn}
\mbox{\Hypertarget{classsc2_1_1_observation_interface_a09ba9ccd3b9c32a6e57d80da3e739a49}\label{classsc2_1_1_observation_interface_a09ba9ccd3b9c32a6e57d80da3e739a49}} 
\index{sc2\+::\+Observation\+Interface@{sc2\+::\+Observation\+Interface}!Is\+Pathable@{Is\+Pathable}}
\index{Is\+Pathable@{Is\+Pathable}!sc2\+::\+Observation\+Interface@{sc2\+::\+Observation\+Interface}}
\subsubsection{\texorpdfstring{Is\+Pathable()}{IsPathable()}}
{\footnotesize\ttfamily virtual bool sc2\+::\+Observation\+Interface\+::\+Is\+Pathable (\begin{DoxyParamCaption}\item[{const \hyperlink{structsc2_1_1_point2_d}{Point2D} \&}]{point }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [pure virtual]}}



Returns \textquotesingle{}true\textquotesingle{} if the given point on the terrain is pathable. This does not. 

$<$ 
\begin{DoxyParams}{Parameters}
{\em point} & Position to sample. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
Pathable. 
\end{DoxyReturn}
\mbox{\Hypertarget{classsc2_1_1_observation_interface_aceb3be53ab7a68e268169e6f786e61f6}\label{classsc2_1_1_observation_interface_aceb3be53ab7a68e268169e6f786e61f6}} 
\index{sc2\+::\+Observation\+Interface@{sc2\+::\+Observation\+Interface}!Is\+Placable@{Is\+Placable}}
\index{Is\+Placable@{Is\+Placable}!sc2\+::\+Observation\+Interface@{sc2\+::\+Observation\+Interface}}
\subsubsection{\texorpdfstring{Is\+Placable()}{IsPlacable()}}
{\footnotesize\ttfamily virtual bool sc2\+::\+Observation\+Interface\+::\+Is\+Placable (\begin{DoxyParamCaption}\item[{const \hyperlink{structsc2_1_1_point2_d}{Point2D} \&}]{point }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [pure virtual]}}



Returns \textquotesingle{}true\textquotesingle{} if the given point on the terrain is buildable. This does not. 

$<$ 
\begin{DoxyParams}{Parameters}
{\em point} & Position to sample. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
Placable. 
\end{DoxyReturn}
\mbox{\Hypertarget{classsc2_1_1_observation_interface_a8e6d0c2bce48f675b3d4b99f925dfafb}\label{classsc2_1_1_observation_interface_a8e6d0c2bce48f675b3d4b99f925dfafb}} 
\index{sc2\+::\+Observation\+Interface@{sc2\+::\+Observation\+Interface}!Terrain\+Height@{Terrain\+Height}}
\index{Terrain\+Height@{Terrain\+Height}!sc2\+::\+Observation\+Interface@{sc2\+::\+Observation\+Interface}}
\subsubsection{\texorpdfstring{Terrain\+Height()}{TerrainHeight()}}
{\footnotesize\ttfamily virtual float sc2\+::\+Observation\+Interface\+::\+Terrain\+Height (\begin{DoxyParamCaption}\item[{const \hyperlink{structsc2_1_1_point2_d}{Point2D} \&}]{point }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [pure virtual]}}

Returns terrain height of the given point. 
\begin{DoxyParams}{Parameters}
{\em point} & Position to sample. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
Height. 
\end{DoxyReturn}


The documentation for this class was generated from the following file\+:\begin{DoxyCompactItemize}
\item 
include/sc2api/\hyperlink{sc2__interfaces_8h}{sc2\+\_\+interfaces.\+h}\end{DoxyCompactItemize}
